package com.yixun.qfbao.api.service;

import com.yixun.common.page.Page;
import com.yixun.qfbao.apidto.GetCustomerPageReqDto;
import com.yixun.qfbao.common.model.PageDTO;
import com.yixun.qfbao.common.response.CommonResponse;
import com.yixun.qfbao.model.Customer;
import com.yixun.qfbao.xf.model.CustomerPremises;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @Description
 * @Date 2017/11/27
 * @Author sangtao
 * @Computer Administrator
 */
public interface CustomerApiService {
    /**
     * 初始化公司客户
     * @return
     */
    void initCPCustomer(Date initStart, Date initEnd);

    /**
     * 合并经济人客户
     * @return
     */
    void mergeAgentCustomer();

    /**
     * 修改报备-->修改客户信息
     * 修改的报备记录对应的客户原始报备为此报备,则修改此客户信息
     */
    void editCP2EditCustomer(Long reportId);

    /**
     * 修改客户-->修改关联报备
     * 修改的客户记录对应的报备
     */
    Boolean editCustomer2EditCP(Customer customer);

    /**
     * 补全号码完善客户信息
     * @param reportId
     */
    void completePhone2EditCustomer(Long reportId);

    /**
     * 小程序客户列表
     * @param reqDto
     * @return
     */
    Page<Customer> getWeappCustomerPage(GetCustomerPageReqDto reqDto, PageDTO pageDTO);

    Customer getCustomerById(Long customerId);

    CommonResponse saveOrEditCustomer(Customer customer);

    List<CustomerPremises> getCustomerHisReport(Long customerId);

    /**
     * 获取客户报备过的楼盘
     * @param customerList
     * @param limitSize 楼盘最长限制
     * @return
     */
    Map<String, String> getCustomerReportedPremises(List<String> customerList, int limitSize);
}
